\section*{Einleitung}

Für die erfolgreiche Bewältigung des Projektes war eine sinnvolle
Projekteinteilung und -planung notwendig. Wir teilten unsere Gruppe in
zwei Untergruppen von je zwei Personen. Die einzelnen Teilaufgaben
wurden anschließend den Gruppen zugeteilt. In regelmäßigen Abständen
trafen wir uns, um über aufgetretene Probleme, Schwierigkeiten und
Lösungsansätze zu diskutieren. Des Weiteren wurden die alle Mitglieder
stets über Fortschritte informiert. Wichtige Designentscheidungen
wurden immer in der gesamten Gruppe getroffen.

Die Umsetzung der Aufgaben erfolgte, wie beim Xtreme Programming immer
in Zweiergruppen. Dies führte dazu, dass Lösungen rascher entwickelt
werden konnten, aber auch, dass konzeptuelle Fehler gleich erkannt und
somit behoben werden konnten.

\subsection*{Zeiteinteilung}

Das Projekt wurde in drei Phasen gegliedert: Planung, Entwicklung und
Dokumentation. In der ersten Phase konnte sich jedes Mitglied mehrere
Aufgaben zur Bearbeitung aussuchen und mit einem anderen Mitglied
diese Aufgabe reservieren. Des Weiteren wurde die Wahl der
Zusatzaufgabe getroffen und die Struktur der Datenbasis
festgelegt. Die Entwicklungphase betrug ca. zweieinhalb Wochen, in
denen jeweils die Aufgaben im Paar gelöst wurden. Die Lösungen wurden
in regelmäßigen Treffen genauer erläutert. Das Ende des Projektes
markierte die Dokumentationsphase, in dem das Team gemeinsam die
Aufgaben überprüfte und die Lösungen dokumentierte. Auch die
Präsentation wurde in dieser Phase erstellt.

\subsection*{Werkzeuge}

\subsubsection*{Versionskontrolle}
Um eine zeitgleiche Bearbeitung der Aufgaben zu ermöglichen war es
sehr wichtig den Code durch ein Revision-Control-System zu
verwalten. Wir haben uns dabei für Google-Code
(http://code.google.com) entschieden. Google-Code bietet ein
Online-Wiki für den Ideenaustausch und ein SVN Repository zur
Code-Verwaltung an.

\subsubsection*{Oxygen}
Als Entwicklungsumgebung für XML-Dokumente, Xquery- und XSLT-Skripte
diente uns Oxygen bzw. Eclipse als Entwicklungsumgebung. Als Compiler
wurde Saxon in der Version 9.2 verwendet.

\subsubsection*{PHP}
Für die Zusatzaufgabe benötigten wir einen Webserver mit
PHP-Unterstützung. Dabei kam Apache in der Version 2 zum Einsatz.

\section*{Überblick}
Hier ein kurzer Überblick über die Aufgaben, welche im Praktikum: XML
Technologie von uns bearbeitet wurden:
\begin{description}
\item[Rohdaten Mediathek] Die Rohdaten der Mediathek werden durch ein
  XSLT-Skript in ein besseres, aussagekräftigeres Format konvertiert.
\item[Rohdaten Komponisten] Die Rohdaten der Komponisten werden durch
  ein XQuery-Script in ein besseres, aussagekräftigeres Format
  konvertiert.
\item[Aufgabe 1] Es wird gezeigt wie ein eindeutiger
  \textit{Universally Unique Identifier} (UUID) in XQuery bzw. XSLT
  erzeugt wird.
\item[Aufgabe 2] Die Komponisten werden in der Komponistenliste um
  einen eindeutigen Identifikator erweitert.
\item[Aufgabe 3] Den Tracks in der Mediathek werden mit XQuery
  Komponisten aus der Komponistenliste zugewiesen.
\item[Aufgabe 4] Es werden verschiedene Bereinigungen an der Mediathek
  durch ein XQuery-Script vorgenommen.
\item[Aufgabe 5] Ein XSLT-Script fügt Albums- und
  Compilations-Sektionen in die Mediathek ein.
\item[Zusatzaufgabe] Ein XForms-Formular ermöglicht es ein Album
  bzw. eine Compilation auszuwählen und daraus eine SVG-Cover-Grafik
  zu erstellen.
\end{description}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../documentation"
%%% End: 
